package qc.module.qms.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import qc.common.core.enums.qms.QmsElementValueDataTypeEnum;

import java.io.Serializable;

/**
 * QmsElement
 *
 * @author QuCheng Tech
 * @since 2025/9/29
 */
@Data
@TableName("qms_element")
public class QmsElement implements Serializable, Cloneable {
    /**
     * 要素编码;建议使用单个英文字母代表
     */
    @TableId
    private String elecode;
    /**
     * 要素名称
     */
    private String elename;
    /**
     * 值类型;布尔、枚举、整数、小数、图片、视频
     */
    private QmsElementValueDataTypeEnum valuetype;
    /**
     * 数值单位;系统中存储的数据使用统一单位，在查询显示时根据需要进行转换
     */
    private String valueunit;
    /**
     * 是否为累计值;默认为false，如雨量、水量、电量等则为累计值
     */
    private Boolean istotal;
    /**
     * 分辨力;数据值精度，用于系统中判断数据值是否变化的标准
     */
    private Double resolution;
    /**
     * 数值上限;可以不设置，设置时数值大于该值自动判定数据为错误值
     */
    private Double maxv;
    /**
     * 超数值上限是否修订;超过数值上限是否使用上限值自动进行修订
     */
    private Boolean maxvamend;
    /**
     * 数值下限;可以不设置，设置时数值小于该值自动判定数据为错误值
     */
    private Double minv;
    /**
     * 超数值下限是否修订;超过数值下限是否使用下限值自动进行修订
     */
    private Boolean minvamend;
    /**
     * 数值显示格式化;固定小数点后几位、保留几位有效数字、布尔或枚举值对应显示
     */
    private String valueformat;
    /**
     * 图表显示配置;默认图表显示配置，如Y轴左右、范围、最小间隔，折线图、柱状图显示
     */
    private String chartcfg;
    /**
     * 要素描述
     */
    private String description;
}
